package com.example.yibu.controller;


import com.example.yibu.modelConfig.ConfigQueue;
import com.example.yibu.modelConfig.QueueEntity;
import com.example.yibu.yibService.AiTestVService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.UUID;

@RestController
@RequestMapping("/aiTestAy")
public class AiTestVController {
    @Autowired
    private AiTestVService aiTestVService;
    @Autowired
    private ConfigQueue configQueue;

    //队列的使用
    @PostMapping("getTaskId")
    public String addQueVideoJson(@RequestBody String json){
        try {
            QueueEntity queueEntity = new QueueEntity();
            if (configQueue.getQueueSize() >= 3) return "访问过多";
            String uuid = UUID.randomUUID().toString().replace("-", "");
            queueEntity.setRequestId(uuid);
            queueEntity.setRequestDate(json);
            configQueue.addQueueTask(queueEntity);
            return uuid;
        }catch (Exception e){
            return e.getMessage();
        }
    }

    @PostMapping("getTaskResult/{id}")
    public String getTaskResult(@PathVariable("id") String id){  //拼接在url
        try {
            String taskResult = aiTestVService.getTaskResult(id);
            return taskResult;
        }catch (Exception e){
            return e.getMessage();
        }
    }

/* @PostMapping("getTaskResult")
    public String getTaskResult(@RequestParam("id") String id){  //form-data
        try {
            String taskResult = aiTestVService.getTaskResult(id);
            return taskResult;
        }catch (Exception e){
            return e.getMessage();
        }
    }*/

/*
public String getTaskResult(
   @RequestParam("id") Long id,
   @RequestParam(value = "ids", required = false) String ids) { //Query
return "Task ID: " + id + ", Additional IDs: " + ids;
}
@RequestParam("id") Long id
@RequestParam 注解用来指定请求参数的名字，这里参数名为 "id"。
Long id 表示这个参数的类型是 Long，意味着它是一个长整型数字。
这个参数是必需的，因为没有设置 required=false，所以如果请求中缺少了这个参数，将会抛出异常。
@RequestParam(value = "ids", required = false) String ids
同样使用了 @RequestParam 注解来指定请求参数的名字为 "ids"。
String ids 指定这个参数的类型是字符串。
required = false 表明这个参数不是必须的，即使请求中没有提供这个参数，也不会导致错误。如果这个参数不存在，ids 将会是 null 或者可以根据配置返回默认值。
*/

}
